package com.woniuxy.oa.mapper;
 
import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.woniuxy.oa.entity.Approval;
import com.woniuxy.oa.entity.Employee;
import com.woniuxy.oa.entity.Goods_claim;
import com.woniuxy.oa.entity.Goods_purchase;
import com.woniuxy.oa.entity.Holiday;
import com.woniuxy.oa.entity.Notice;
import com.woniuxy.oa.entity.Overtime;
import com.woniuxy.oa.entity.Reimbursement;

public interface ApprovalMapper {
	// 测试mybatis能不能在sql中写if
	List<Approval> testSqlIf(@Param("approval") Approval approval, @Param("holiday") Holiday holiday);

	// 根据当前用户id找部门id
	Integer selectDidById(Integer id);

	// 根据部门id找部门中有审批权限的人list
	List<Employee> selectApprovalPersonByDid(Integer did);

	// 向审批表中插入发起人id 审批人id 申请时间，审批类型
	Integer insertApprovalGetId(Approval approval);

	// 获取总记录条数（按名字、类型、申请时间）
	Integer getApprovalPageBeanCount(String name, @Param("approval") Approval approval,
			@Param("holiday") Holiday holiday, @Param("reimbursement") Reimbursement reimbursement);

	// 查询所有审批
	List<Approval> selectApprovalPageBeanByConditionAndPageIndex(Integer pageIndex, Integer pageSize, String name,
			@Param("approval") Approval approval, @Param("holiday") Holiday holiday,
			@Param("reimbursement") Reimbursement reimbursement);
 	

	// 根据审批号查假期
	Holiday selectHolidayByAidWhenTypeIsEmpty(Integer a_id);

	// 根据审批号查申领
	Goods_claim selectGoodClaimByAid(Integer a_id);

	// 根据审批号查申购
	Goods_purchase selectGoodPurchaseByAid(Integer a_id);

	// 根据审批号查通知
	Notice selectNoticeByAid(Integer a_id);

	// 根据审批号查加班
	Overtime selectOverTimeByAid(Integer a_id);

	// 根据审批号查报销
	Reimbursement selectReimbursementByAidWhenTypeIsEmpty(Integer a_id);

	//根据类型插入关系
	void insertRelationship(Integer table_key, Integer a_id, Integer a_type);

	//根据审批号查审批
	Approval selectApprovalByAid(Integer a_id);

	//同意方法
	void agree(Integer a_id);
	
	//不同意方法
	void disagree(Integer a_id);

	//向审批表写入审批时间
	void writeExamineTime(Integer a_id,String a_time);


}
